/*
 * Golem.cpp
 *
 *  Created on: Jun 18, 2013
 *      Author: Hernan
 */

#include "Golem.h"


void Golem::atacar(Personaje* agresor, Casilla* casillaAtacada){

	TipoEntidad* tipoGolem = this->escenario->getTiposEntidades()["golem"];

	int x= casillaAtacada->getX()+1;
	int y= casillaAtacada->getY()+1;

	Personaje* golem= new Personaje();
	golem->setTipo(tipoGolem);
	golem->setCoordenadas(x, y);

	golem->setVelocidad(tipoGolem->getVelocidad());
	golem->setVida(tipoGolem->getVida());
	golem->setMagia(tipoGolem->getMagia());
	golem->setPasosVision(tipoGolem->getPasosVision());
	golem->setX(x);
	golem->setY(y);
	golem->setCaminoInicial();
	golem->setVida(golem->getTipo()->getVida());
	golem->setVidaMaxima(golem->getVida());

	cout<<"nombre : "<<golem->getTipo()->getNombre()<<endl;
	cout<<"x : "<<golem->getX()<<endl;
	cout<<"y : "<<golem->getY()<<endl;
	cout<<"vida : "<<golem->getVida()<<endl;
	//Se setea la accion por defecto: nombrePersonaje_default
	string accionDefault = tipoGolem->getRuta().substr(0,
			tipoGolem->getRuta().find("_"));

	accionDefault += "_default";
	golem->setAccion(accionDefault);

	EnemigoAutomata* automataGolem = new EnemigoAutomata(golem, this->escenario);



	automataGolem->setProtegido(agresor);

	//LOS AGREGO A LA CASILLA Y A LAS LISTAS DE PERSONAJES DE ESCENARIO
	// Y A LA DE AUTOMATAS.

	this->escenario->agregarPersonaje(golem);
	this->escenario->agregarAutomata(automataGolem);
	this->escenario->getCasilla(x,y)->agregarPersonaje(golem);
	//arranco!
	automataGolem->start();


}




